/*
 * @Author: zi.yang
 * @Date: 2021-07-02 10:21:34
 * @LastEditors: zi.yang
 * @LastEditTime: 2021-10-02 13:55:18
 * @Description: 重复消息拦截器：避免重复消息在同一时间频繁触发
 * @FilePath: \ziYangPM\src\Utils\messageInterceptor.js
 */
class MessageInterceptor {
  constructor () {
    // 消息队列
    this.queue = []
  }

  /**
   * 加入队列
   * @param { String|Number } msg
   */
  enqueue (msg) {
    this.queue.push(msg)
  }

  /**
   * 移除队列
   * @param { String|Number } msg
   */
  dequeue (msg) {
    const index = this.queue.findIndex((item) => item === msg)
    this.queue.splice(index, 1)
  }

  /**
   * 检查队列中是否存在
   * @param { String|Number } msg
   * @return { Boolean } 是否存在
   */
  checkQueue (msg) {
    return this.queue.includes(msg)
  }
}

export default MessageInterceptor
